package com.awakensoftware.hunterserver.utilities.geometry;

import java.util.HashMap;
import java.util.Map;

public class Constants {

	// This value determines the accuracy or approximation (interpolation
	// density) of drawing a circle.
	// http://gis.stackexchange.com/questions/46936/how-to-draw-polygons-on-an-existing-map
	public static final int NUMBER_OF_POINTS_PER_CIRCLE = 32;

	// http://www.ncgia.ucsb.edu/education/curricula/giscc/units/u014/tables/table01.html
	public static final Map<Integer, Double> METERS_PER_LATITUDE_DEGREE_AT_LATITUDE = new HashMap<Integer, Double>();
	static {
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(0, (double) 110570);

		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(10, (double) 110610);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(20, (double) 110700);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(30, (double) 110850);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(40, (double) 111040);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(50, (double) 111230);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(60, (double) 111410);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(70, (double) 111560);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(80, (double) 111660);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(90, (double) 111690);

		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(-10, (double) 110610);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(-20, (double) 110700);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(-30, (double) 110850);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(-40, (double) 111040);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(-50, (double) 111230);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(-60, (double) 111410);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(-70, (double) 111560);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(-80, (double) 111660);
		METERS_PER_LATITUDE_DEGREE_AT_LATITUDE.put(-90, (double) 111690);
	}

}
